﻿using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using KPIS.GERP.GBMS.MODEL;

namespace KPIS.GERP.GBMS.BLL
{
    public interface IProjectControl
    {
        // update now
        DataTable GetDataProject(int Year, string HeaderID, string ControlSeq, string SourceID);
        DataTable GetDataStrategyControl(int Year, string HeaderID, bool GroupByProject, string RecordStatus);
        DataTable GetDataControlChart(string Year, string SubAct, string Jobsite, string Project, string Source, string ExpenseGroup, string SeriesName);
        DataTable GetDataProjectByOption(int Year, string HeaderID, string Strategy, string RecordStatus);
        //DataTable GetDataProjectBySequence(string seq);
        DataTable GetDataProjectBySequenceForGridIn(string seq, string Strategy);
        DataTable GetDataProjectBySequenceForGridIn(string Year, string seq, string Strategy, string RecordStatus);
        DataTable GetDataProjectExpGrpBySequenceForGridIn(string Year, string seq, string Strategy, string RecordStatus);

        DataTable GetDataProjectOption(string bgm_prj_seq, string bgm_option_type_seq, string Strategy);
        DataTable GetDataProjectOption(string Year, string bgm_prj_seq, string bgm_option_type_seq, string Strategy);
        //DataTable GetDataProjectOptionBySequence(string seq);
        //DataTable GetDataProjectKPI(string bgm_prj_seq);
        //DataTable GetDataProjectKPIBySequence(string bgm_prj_kpi_seq);
        //DataTable GetDataProjectActivityPlan(string bgm_prj_seq);
        //DataTable GetDataProjectActivityPlanBySequence(string bgm_prj_act_plan_seq);
        //DataTable GetDataProjectActivityPlanTarget(string bgm_prj_act_plan_seq);
        DataTable GetDataProjectExpense(string bgm_prj_seq, string source);
        //DataTable GetDataProjectExpenseBySequence(string bgm_prj_exp_seq);
        //DataTable GetDataProjectExpenseGroup(string bgm_prj_seq, string bgm_source_seq);
        //DataTable GetDataProjectExpensePlan(string bgm_prj_seq, string bgm_source_seq);
        //DataTable GetDataProjectExpensePlanBySequence(string bgm_prj_exp_plan_seq);
        //int InsertProject(string bgm_rec_header_seq, string bgm_year, DateTime bgm_prj_date, string bgm_strat_list_seq, string job_site_seq, string prj_type_seq, string bgm_prj_manager, string bgm_prj_scope, string bgm_prj_code, string bgm_prj_name, string bgm_prj_descr, string bgm_prj_reason, string bgm_prj_object, string bgm_prj_plan, string bgm_prj_target, string bgm_prj_remark, string CreatedBy);
        //int InsertProject(string bgm_year, DateTime bgm_req_date, string bgm_req_name, string bgm_strat_list_seq, string job_site_seq, string prj_type_seq, string bgm_req_scope, string bgm_req_reason, string bgm_req_object, string bgm_req_plan, string bgm_req_target, string bgm_req_remark, string CreatedBy);
        //void InsertProjectCustoms(string bgm_prj_seq, string prj_ctrl_seq, string descr);
        //void InsertProjectOption(string bgm_prj_seq, string descr, Nullable<Double> weight, string bgm_option_seq, string created_by);
        //void InsertProjectKPI(string bgm_prj_kpi_name, string bgm_prj_kpi_descr, string unit, string bgm_prj_kpi_weight, string bgm_prj_seq, string bgm_kpi_type_seq, string score_1, string score_2, string score_3, string score_4, string score_5, string target_type, string target_q1, string target_q2, string target_q3, string target_q4, string mtef_1, string mtef_2, string mtef_3, string created_by);
        //int InsertProjectActivityPlan(string bgm_prj_seq, string descr, int act_month1, int act_month2, int act_month3, int act_month4, int act_month5, int act_month6, int act_month7, int act_month8, int act_month9, int act_month10, int act_month11, int act_month12, string created_by);
        //void InsertProjectActivityPlanTarget(string bgm_prj_act_plan_seq, string target, string start_month, string end_month, string created_by);
        //void InsertProjectExpense(string bgm_prj_seq, string bgm_source_seq, string bgm_exp_seq, string total_amount, string descr, Nullable<int> icm_res_item_seq, Nullable<int> unit_qty, Nullable<decimal> unit_price, Nullable<decimal> mtef1, Nullable<decimal> mtef2, Nullable<decimal> mtef3, string created_by);
        //void InsertProjectExpensePlan(string bgm_prj_exp_seq, string amount_month1, string amount_month2, string amount_month3, string amount_month4, string amount_month5, string amount_month6, string amount_month7, string amount_month8, string amount_month9, string amount_month10, string amount_month11, string amount_month12, string created_by);
        void UpdateProject(string project_sequence, string control_seq, string status, string UpdateBy);
        //void UpdateProjectOption(string Sequence, string descr, Nullable<Double> weight, string bgm_option_seq, string UpdateBy);
        //void UpdateProjectKPI(string Sequence, string bgm_prj_kpi_name, string bgm_prj_kpi_descr, string unit, string bgm_prj_kpi_weight, string bgm_kpi_type_seq, string score_1, string score_2, string score_3, string score_4, string score_5, string target_type, string target_q1, string target_q2, string target_q3, string target_q4, string mtef_1, string mtef_2, string mtef_3, string UpdateBy);
        //void UpdateProjectActivityPlan(string Sequence, string descr, int act_month1, int act_month2, int act_month3, int act_month4, int act_month5, int act_month6, int act_month7, int act_month8, int act_month9, int act_month10, int act_month11, int act_month12, string UpdateBy);
        //void UpdateProjectActivityPlanTarget(string Sequence, string target, string start_month, string end_month, string UpdateBy);
        void UpdateProjectExpense(string Sequence, string bgm_app_ctrl_exp_seq, string bgm_source_seq, string bgm_exp_seq, string approve_amount, string descr, Nullable<int> icm_res_item_seq, Nullable<int> unit_qty, Nullable<decimal> unit_price, Nullable<decimal> mtef1, Nullable<decimal> mtef2, Nullable<decimal> mtef3, string UpdateBy);
        //void UpdateProjectExpensePlan(string Sequence, string amount_month1, string amount_month2, string amount_month3, string amount_month4, string amount_month5, string amount_month6, string amount_month7, string amount_month8, string amount_month9, string amount_month10, string amount_month11, string amount_month12, string UpdateBy);
        //void UpdateProjectCustoms(string Sequence, string descr);
        //void DeleteProject(int Seq);
        //void DeleteProjectOption(string Seq);
        //void DeleteProjectKPI(string Seq);
        //void DeleteProjectActivityPlan(string Seq);
        //void DeleteProjectActivityPlanTarget(string Seq);
        //void DeleteProjectExpense(string Seq);

        //void InsertProjectManager(string bgm_prj_seq, string emp_seq);
        //void DeleteProjectManager(string bgm_prj_seq);
        //DataTable GetDataProjectManager(string bgm_prj_seq);
        //bool chkDubProjectOption(string bgm_prj_seq, string bgm_option_seq);
        //DataTable GetDataProjectControlByJobSite(string job_site_seq, string HeaderID);
        //DataTable GetDataProjectControlBySequenceForGridIn(string seq, string job_site_seq);

        DataTable ListProjectExpenseGrid(string ProjectSeq, string Source, string ExpenseGroup);
        DataTable ListPRojectExpense(string bgm_app_ctrl_seq, string source);

    }
}
